﻿<?xml version="1.0" encoding="utf-8"?>
<xsd:schema id="sfxConfigs" xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
  <xsd:element name="sfxConfigs">
    <xsd:complexType>
      <xsd:choice minOccurs="1" maxOccurs="1">
        <xsd:element name="config" minOccurs="1" maxOccurs="unbounded">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element name="id" minOccurs="0" maxOccurs="unbounded">
                <xsd:complexType>
                  <xsd:attribute name="description">
                    <xsd:simpleType>
                      <xsd:restriction base="xsd:string">
                        <xsd:minLength value="1"/>
                      </xsd:restriction>
                    </xsd:simpleType>
                  </xsd:attribute>
                  <xsd:attribute name="command">
                    <xsd:simpleType>
                      <xsd:restriction base="xsd:string">
                        <xsd:minLength value="1"/>
                      </xsd:restriction>
                    </xsd:simpleType>
                  </xsd:attribute>
                </xsd:complexType>
              </xsd:element>
            </xsd:sequence>
            <xsd:attribute name="name">
              <xsd:simpleType>
                <xsd:restriction base="xsd:string">
                  <xsd:minLength value="1"/>
                </xsd:restriction>
              </xsd:simpleType>
            </xsd:attribute>
            <xsd:attribute name="modules">
              <xsd:simpleType>
                <xsd:restriction base='xsd:string'>
                  <xsd:pattern value='((.)+.sfx;)*(.)+.sfx'/>
                </xsd:restriction>
              </xsd:simpleType>
            </xsd:attribute>
          </xsd:complexType>
        </xsd:element>
      </xsd:choice>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>